<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>glGetShaderPrecisionFormat - OpenGL ES 3.2 Reference Pages</title>
    <link rel="stylesheet" type="text/css" href="opengl-man.css"/>
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1"/>
    <script type="text/x-mathjax-config">
            MathJax.Hub.Config({
                MathML: {
                    extensions: ["content-mathml.js"]
                },
                tex2jax: {
                    inlineMath: [['$','$'], ['\\(','\\)']]
                }
            });
        </script>
    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"/>
  </head>
  <body>
    <header/>
    <div class="refentry" id="glGetShaderPrecisionFormat">
      <div class="titlepage"/>
      <div class="refnamediv">
        <h2>Name</h2>
        <p>glGetShaderPrecisionFormat — retrieve the range and precision for numeric formats supported by the shader compiler</p>
      </div>
      <div class="refsynopsisdiv">
        <h2>C Specification</h2>
        <div class="funcsynopsis">
          <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
            <tr>
              <td>
                <code class="funcdef">void <strong class="fsfunc">glGetShaderPrecisionFormat</strong>(</code>
              </td>
              <td>GLenum <var class="pdparam">shaderType</var>, </td>
            </tr>
            <tr>
              <td> </td>
              <td>GLenum <var class="pdparam">precisionType</var>, </td>
            </tr>
            <tr>
              <td> </td>
              <td>GLint *<var class="pdparam">range</var>, </td>
            </tr>
            <tr>
              <td> </td>
              <td>GLint *<var class="pdparam">precision</var><code>)</code>;</td>
            </tr>
          </table>
          <div class="funcprototype-spacer"> </div>
        </div>
      </div>
      <div class="refsect1" id="parameters">
        <h2>Parameters</h2>
        <div class="variablelist">
          <dl class="variablelist">
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>shaderType</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>
                Specifies the type of shader whose precision to query. <em class="parameter"><code>shaderType</code></em>
                must be <code class="constant">GL_VERTEX_SHADER</code> or <code class="constant">GL_FRAGMENT_SHADER</code>.
            </p>
            </dd>
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>precisionType</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>
                Specifies the numeric format whose precision and range to query.
            </p>
            </dd>
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>range</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>
                Specifies the address of array of two integers into which encodings of the implementation's
                numeric range are returned.
            </p>
            </dd>
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>precision</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>
                Specifies the address of an integer into which the numeric precision of the implementation
                is written.
            </p>
            </dd>
          </dl>
        </div>
      </div>
      <div class="refsect1" id="description">
        <h2>Description</h2>
        <p>
            <code class="function">glGetShaderPrecisionFormat</code> retrieves the numeric range and precision for
            the implementation's representation of quantities in different numeric formats in specified
            shader type. <em class="parameter"><code>shaderType</code></em> specifies the type of shader for which the numeric
            precision and range is to be retrieved and must be one of <code class="constant">GL_VERTEX_SHADER</code>
            or <code class="constant">GL_FRAGMENT_SHADER</code>. <em class="parameter"><code>precisionType</code></em> specifies the
            numeric format to query and must be one of <code class="constant">GL_LOW_FLOAT</code>, <code class="constant">GL_MEDIUM_FLOAT</code>
            <code class="constant">GL_HIGH_FLOAT</code>, <code class="constant">GL_LOW_INT</code>, <code class="constant">GL_MEDIUM_INT</code>,
            or <code class="constant">GL_HIGH_INT</code>.
        </p>
        <p>
            <em class="parameter"><code>range</code></em> points to an array of two integers into which the format's numeric range
            will be returned. If min and max are the smallest values representable in the format, then the values
            returned are defined to be: <em class="parameter"><code>range</code></em>[0] = floor(log2(|min|)) and
            <em class="parameter"><code>range</code></em>[1] = floor(log2(|max|)).
        </p>
        <p>
            <em class="parameter"><code>precision</code></em> specifies the address of an integer into which will be written
            the log2 value of the number of bits of precision of the format. If the smallest representable
            value greater than 1 is 1 + <span class="emphasis"><em>eps</em></span>, then the integer addressed by <em class="parameter"><code>precision</code></em>
            will contain floor(-log2(eps)).
        </p>
      </div>
      <div class="refsect1" id="errors">
        <h2>Errors</h2>
        <p>
            <code class="constant">GL_INVALID_ENUM</code> is generated if <em class="parameter"><code>shaderType</code></em> or
            <em class="parameter"><code>precisionType</code></em> is not an accepted value.
        </p>
      </div>
      <div class="refsect1" id="versions">
        <h2>API Version Support</h2>
        <div class="informaltable">
          <table style="border-collapse: collapse; border-top: 2px solid ; border-bottom: 2px solid ; border-left: 2px solid ; border-right: 2px solid ; ">
            <colgroup>
              <col style="text-align: left; "/>
              <col style="text-align: center; " class="firstvers"/>
              <col style="text-align: center; "/>
              <col style="text-align: center; "/>
              <col style="text-align: center; " class="lastvers"/>
            </colgroup>
            <thead>
              <tr>
                <th style="text-align: left; border-right: 2px solid ; ">
                 
            </th>
                <th style="text-align: center; border-bottom: 2px solid ; " colspan="4">
                <span class="bold"><strong>OpenGL ES API Version</strong></span>
            </th>
              </tr>
              <tr>
                <th style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
                <span class="bold"><strong>Function Name</strong></span>
            </th>
                <th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
                <span class="bold"><strong>2.0</strong></span>
            </th>
                <th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
                <span class="bold"><strong>3.0</strong></span>
            </th>
                <th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
                <span class="bold"><strong>3.1</strong></span>
            </th>
                <th style="text-align: center; border-bottom: 2px solid ; ">
                <span class="bold"><strong>3.2</strong></span>
            </th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td style="text-align: left; border-right: 2px solid ; ">glGetShaderPrecisionFormat</td>
                <td style="text-align: center; border-right: 2px solid ; ">✔</td>
                <td style="text-align: center; border-right: 2px solid ; ">✔</td>
                <td style="text-align: center; border-right: 2px solid ; ">✔</td>
                <td style="text-align: center; ">✔</td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
      <div class="refsect1" id="Copyright">
        <h2>Copyright</h2>
        <p>
            Copyright <span class="trademark"/>© 2010-2015 Khronos Group.
            This material may be distributed subject to the terms and conditions set forth in
            the Open Publication License, v 1.0, 8 June 1999.
            <a class="link" href="http://opencontent.org/openpub/" target="_top">http://opencontent.org/openpub/</a>.
        </p>
      </div>
    </div>
    <footer/>
  </body>
</html>
